SpringBoot+Nacos实现配置中心

您所在的位置:网站首页 springboot alibaba SpringBoot+Nacos实现配置中心

SpringBoot+Nacos实现配置中心

2023-04-03 23:39| 来源: 网络整理| 查看: 265

「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战」

概念

首先理解Nacos到底是干什么的?

配置中心 服务注册中心 配置中心

所谓配置中心:一般SpringBoot项目都使用在resources下创建类似application.yml之类的配置文件来管理整个项目的一些配置信息

mysql、redis、es、mq等地址账号密码 业务场景信息 主站ip前缀 。。。。。。

那么就会有人想了,为啥要将这些本来是动态配置的信息写死在代码中呢。而且如果有人登陆上了服务器,获取了Jar文件,是不是就可以有了各种数据库的链接信息了呢。所以配置中心应运而生了。

通过一个配置平台来管理注册中心下所有的服务的配置文件信息,也就是说以后服务不需要去resource中获取相应需要的配置信息了,直接去这个服务中获取即可

优点:

灵活配置 统一管理 权限控制 ...... Nacos-client使用配置中心 创建一个SpringBoot项目 导入相关的依赖 增加基本的配置信息 修改启动类 新增测试类 初始化项目

基于SpringBoot的所需依赖及注意事项

org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test com.alibaba.cloud spring-cloud-starter-alibaba-nacos-config 2.2.1.RELEASE com.alibaba.cloud spring-cloud-starter-alibaba-nacos-discovery 2.2.1.RELEASE org.springframework.boot spring-boot-starter-actuator 2.2.1.RELEASE 复制代码 基础配置信息

bootstrap.yml,在存在该文件时,会优先加载改文件数据,bootstrap的意思是“引导程序”

spring: application: name: nacos-config-client profiles: active: dev cloud: nacos: discovery: # Nacos服务注册中心地址 server-addr: http://yourIp:8848 config: # 指定Nacos配置中心的地址 server-addr: http://yourIp:8848 file-extension: yaml # 指定yaml格式的配置 默认properties server: port: 8080 复制代码 基础启动类 @SpringBootApplication @EnableDiscoveryClient public class NacosClientApplication { public static void main(String[] args) { SpringApplication.run(NacosClientApplication.class, args); } } 复制代码 基础测试验证类 @RestController //@RefreshScope用于动态刷新 @RefreshScope public class ConfigClientController { @Value("${config.info}") private String configInfo; @GetMapping("/config/info") public String getConfigInfo() { return configInfo; } } 复制代码

注意此时yml配置文件中并不能获取到${config.info}。所以为了启动不报错,需要提前在配置中心的页面中进行数据配置

配置中心进行配置1 配置中心进行配置2

启动服务

在浏览器中调用localhost:8080/config/info接口,获取到配置中心配置的数据即表示无误

dataId

dataId=prefix−{prefix}-prefix−{spring.profile.active}.${file-extension}

其中profix默认为${spring.application.name}

file-extension表示配置的类型,默认为properties。与页面上相呼应!file-extension配置项

如果没有指定spring.profile.active,那么dataId就变成了profix.{profix}.profix.{file-extension}

启动时会发现启动日志中会打出多个, ${prefix} prefix−{prefix}-prefix−{spring.profile.active} prefix−{prefix}-prefix−{spring.profile.active}.${file-extension}。说明其实是可以匹配配置中心中配置的多条配置名称 匹配优先级是:3>2>1,精确匹配

学习自: 大佬1号 大佬2号 遇到的问题:

Error creating bean with name ‘configurationPropertiesBeans‘ defined in class path resource 「nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'config.info' in value "${config.info}"」配置中心指定的配置与测试中注入的配置信息不一致


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3